<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    // 2021-09-04 21:49:00
    // 2021-09-04 21:49
    // 2021-09-04
    // 21:49:00

    // 2021/09/04 21:49:00
    // 2021/09/04 21:49
    // 2021/09/04

    // 封装一个函数 对时间格式化并输出 => 输出时 指定时间格式?
    // pattern 形参用于接收时间格式
    // date    选填(默认获取当前时间, 也可以传入一个事件格式的字符串,日期对象,毫秒数)
    function dateFormat(pattern,date){
        // var pattern = "YY-MM-DD hh:mm:ss";
        // 判断是否有无传参
        if(date){ // 有参数  => 根据传入的得到一个新时间
            date = new Date(date);
        }else{ //没有  => 默认获取当前时间
            date = new Date();
        }

        var year = date.getFullYear();
        var month = date.getMonth()+1;
        var day = date.getDate();

        var hour = date.getHours();
        var minute = date.getMinutes();
        var second = date.getSeconds();
        
        // 链式操作  本质replace() 方法返回的是:被替换后的新字符串 该字符串依旧可以调用replace方法
       return pattern.replace("YY",year).replace("MM",beauty(month)).replace("DD",beauty(day)).replace("hh",beauty(hour)).replace("mm",beauty(minute)).replace("ss",beauty(second));
    }
    
    function beauty(num) {
        return num < 10 ? "0" + num : num;
    }


    console.log(dateFormat("YY-MM-DD hh:mm:ss"));
    console.log(dateFormat("YY-MM-DD hh:mm"));
    console.log(dateFormat("YY-MM-DD"));
    console.log(dateFormat("hh:mm:ss"));
    console.log(dateFormat("YY/MM/DD hh:mm:ss"));
    
    console.log(dateFormat("YY/MM/DD hh:mm:ss","2021-12-31"));
    console.log(dateFormat("YY/MM/DD hh:mm:ss",1000000000000));

    document.write(dateFormat("YY-MM-DD hh:mm:ss"))
    
  
</script>
</html>